#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>


int gval=0;
int main()
{
  //获取进程pid和ppid
  printf("I am a process, pid: %d, ppid: %d\n",getpid(),getppid());
  
  
  pid_t id =fork();//创建子进程
  //父进程
  if(id>0)
  {
    while(1)
    {
      //父进程只读
      printf("我是父进程，pid：%d，ppid：%d ret id：%d，gval：%d\n",getpid(),getppid(),id,gval);
      sleep(1);
    } 
  }
  //id是0的话则是子进程
  else if(id==0)
  {
    while(1)
    {
     printf("我是子进程，pid：%d，ppid：%d ret id：%d，gval：%d\n",getpid(),getppid(),id,gval);
      //子进程读还修改
      gval++;
      sleep(1);
    } 
  }
  //(void)id;//强转为void，因为id不用，所以这么做是骗过编译器的warning
  //printf("I am a 分支! pid:%d ,ppid: %d\n",getpid(),getppid());

  //sleep(1);
  return 0;
  //chdir("/");
  /*pid_t id=getpid();
  pid_t ppid=getppid();
  while(1)
  {
    rintf("hello world,I am a process,pid:%d,ppid:%d\n",id,ppid);
    sleep(1);
  }
  return 0;
  */
}
